home *** CD-ROM | disk | FTP | other *** search
/ Scene Storm / Scene Storm - Volume 1.iso / coding / asm / demos / exsyslib / examples / example5.s < prev   
Text File  |  1980-01-03  |  3KB  |  166 lines

  1.  
  2.         incdir    'work:exsyslib/'
  3.         include    'include/hardware/exsys_takeover.s' ;1st codeline!
  4.  
  5.         move.l    #temp,d0        set up screen
  6.         move.w    d0,pl1l
  7.         swap    d0
  8.         move.w    d0,pl1h
  9.  
  10.         move.l    #temp,d0
  11.         move.w    d0,pl3l
  12.         swap    d0
  13.         move.w    d0,pl3h
  14.  
  15.         move.l    #screen+44*8,d0
  16.         move.l    d0,pos
  17.         move.w    d0,pl2l
  18.         swap    d0
  19.         move.w    d0,pl2h
  20.  
  21.         move.l    #screen+$4160,d0
  22.         move.w    d0,pl4l
  23.         swap    d0
  24.         move.w    d0,pl4h
  25.  
  26.         bsr    fillmem
  27.  
  28.         lea    copperlist(pc),a0
  29.         bsr.w    newcopper
  30.  
  31. WaitVBL:    cmp.b    #255,$dff006
  32.         bne.s    WaitVBL
  33.         bsr    scrol
  34.         btst    #6,$bfe001.l        ; test left mouse button
  35.         bne.s    WaitVBL
  36.         rts
  37.         
  38. fillmem        lea    screen,a0
  39.         lea    screen+$4000,a1
  40.         lea    gfxdata1,a3
  41.         lea    gfxdata2,a4
  42.         lea    $dff000,a5
  43.         move.l    #$ffffffff,$044(a5)
  44.         move.w    #$0000,$064(a5)
  45.         move.w    #$002a,$066(a5)
  46.         move.w    #$0000,$042(a5)
  47.         move.w    #$09f0,$040(a5)
  48.         moveq    #19-1,d2            ;19 rows down...
  49. fill2        moveq    #22-1,d0            ;22 blocks across
  50. fill        move.l    a0,$054(a5)            ;dest
  51.         move.l    a4,$050(a5)
  52.         move.w    #$3c1,$058(a5)            ;bpl 1
  53.         bsr.s    blitready
  54.         move.l    a1,$054(a5)            ;dest
  55.         move.l    a3,$050(a5)
  56.         move.w    #$3c1,$058(a5)            ;bpl 2
  57.         bsr.s    blitready
  58.         addq.l    #2,a0
  59.         addq.l    #2,a1
  60.         dbra    d0,fill
  61.          lea    15*44(a0),a0
  62.         lea    15*44(a1),a1
  63.         dbra    d2,fill2
  64.          rts    
  65. blitready    btst    #14,$002(a5)
  66.         bne.s    blitready
  67.         rts
  68.  
  69. newcopper:    lea     $dff000,a6        ;a6=custom hardware
  70.         move.w    #$7fff,$96(a6)        ;no dma
  71.         move.l    a0,$80(a6)        ;install new copperlist ptr
  72.         clr.w    $88(a6)            ;strobe copper
  73.         move.w    #$83c0,$96(a6)        ;enable copper dma
  74.         rts
  75.  
  76. pos        dc.l    0
  77.  
  78. scrol        move.l    pos,d0
  79.         move.w    d0,pl2l
  80.         swap    d0
  81.         move.w    d0,pl2h
  82.         swap    d0
  83.         add.l    #$4000,d0
  84.         move.w    d0,pl4l
  85.         swap    d0
  86.         move.w    d0,pl4h
  87.         add.l    #44,pos
  88.         cmp.l    #screen+$160+$2c0,pos
  89.         bge.s    reset
  90.         rts
  91. reset:        move.l    #screen+$160,pos
  92.         rts
  93.  
  94. copperlist    dc    $008e,$1a64
  95.         dc    $0090,$39d1
  96.         dc    $0092,$0033
  97.         dc    $0094,$00cc
  98.         dc    $0100,$4400,$1fc,0,$10c,0
  99.         dc    $0102,$0000
  100.         dc    $0108,$0002
  101.         dc    $010a,$0002    bpl1/2mod
  102. sp_ptr        dc    $0120,$0000,$0122,$0000,$0124,$0000,$0126,$0000
  103.         dc    $0128,$0000,$012a,$0000,$012c,$0000,$012e,$0000 ;no jib
  104.         dc    $0130,$0000,$0132,$0000,$0134,$0000,$0136,$0000
  105.         dc    $0138,$0000,$013a,$0000,$013c,$0000,$013e,$0000
  106.  
  107.         dc    $01a0,$0000,$01a2,$0333,$01a4,$0ddd,$01a6,$0fff
  108.         dc    $01aa,$0333,$01ac,$0ddd,$01ae,$0fff
  109.  
  110.         dc    $0180,$0000,$0182,$0fff,$0184,$0333,$0186,$0fff
  111.         dc    $0188,$0999,$018a,$0777,$018c,$0555,$018e,$0333
  112.         dc    $0190,$0000,$0192,$0444,$0194,$0888,$0196,$0666
  113.         dc    $0198,$0999,$019a,$0777,$019c,$0555,$019e,$0333
  114.         dc    $00e0        set up copper bplane pointers
  115. pl1h        dc    $0000
  116.         dc    $00e2
  117. pl1l        dc    $0000
  118.         dc    $00e8
  119. pl3h        dc    $0000
  120.         dc    $00ea
  121. pl3l        dc    $0000
  122.         dc    $00e4
  123. pl2h        dc    $0000
  124.         dc    $00e6
  125. pl2l        dc    $0000
  126.         dc    $00ec
  127. pl4h        dc    $0000
  128.         dc    $00ee
  129. pl4l        dc    $0000
  130.         dc.l    -2
  131.  
  132. gfxdata1    dc    %1111111111111100
  133.         dc    %1111111111111100
  134.         dc    %1100000000001100
  135.         dc    %1101111111111100
  136.         dc    %1101111111111100
  137.         dc    %1101111111011100
  138.         dc    %1101110011011100
  139.         dc    %1101110111011100
  140.         dc    %1101111111011100
  141.         dc    %1101111111011100
  142.         dc    %1101100000011100
  143.         dc    %1101111111111100
  144.         dc    %1111111111111100
  145.         dc    %1111111111111100
  146.         dc    %0000000000000000
  147.  
  148. gfxdata2    dc    %0000000000000010
  149.         dc    %0111111111111110
  150.         dc    %0111111111110110
  151.         dc    %0111111111110110
  152.         dc    %0111000000010110
  153.         dc    %0111011111110110
  154.         dc    %0111011101110110
  155.         dc    %0111011101110110
  156.         dc    %0111010001110110
  157.         dc    %0111011111110110
  158.         dc    %0111011111110110
  159.         dc    %0111111111110110
  160.         dc    %0100000000000110
  161.         dc    %0111111111111110
  162.         dc    %1111111111111110
  163.  
  164. screen:        ds.b    40960*4
  165. temp        ds.b    44*280
  166.